
class Player(object):
    """Defines a player within the game."""

    def do_move(self, game_state, player_idx, stone_list):
        """
        Instructs the player to do a move by calling the finish_move function in
        the gamestate instance.
        """
        raise Exception("This function should be implemented by a subclass.")


    def get_type_name(self):
        """
        Returns a string representation of the type of player.
        """
        raise Exception("This function should be implemented by a subclass.")


    def should_reveal(self):
        return False
